package com.ambow.shop.util;

/**
 * 数据校验器。
 * 
 * @author chunw
 *
 */
public class DataValidator {
	/**
	 * 正整数正则表达式。
	 */
	public static final String INTEGER_REGEX = "^\\d+$";
	/**
	 * 电子邮件正则表达式。
	 */
	public static final String EMAIL_REGEX = "^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,6}$";
	/**
	 * 日期正则表达式。
	 */
	public static final String DATE_REGEX = "^(19|20)[0-9]{2}[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])$";
	/**
	 * 货币正则表达式。
	 */
	public static final String MONEY_REGEX = "(^[1-9]([0-9]+)?(\\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\\.[0-9]([0-9])?$)";

	/**
	 * 判断给定字符串是否为数字；
	 * 
	 * @param str 字符串；
	 * @return 是否为数字；
	 */
	public static boolean isInteger(String str) {
		return str.matches(INTEGER_REGEX);
	}

	/**
	 * 判断给定字符串是否为电子邮件；
	 * 
	 * @param str 字符串；
	 * @return 是否为电子邮件；
	 */
	public static boolean isEmail(String str) {
		return str.matches(EMAIL_REGEX);
	}

	/**
	 * 判断给定字符串是否为日期；
	 * 
	 * @param str 字符串；
	 * @return 是否为日期；
	 */
	public static boolean isDate(String str) {
		return str.matches(DATE_REGEX);
	}

	/**
	 * 判断给定字符串是否为货币；
	 * 
	 * @param str 字符串；
	 * @return 是否为货币；
	 */
	public static boolean isMoney(String str) {
		return str.matches(MONEY_REGEX);
	}

	/**
	 * 判断给定字符串是否为空；
	 * 
	 * @param str 字符串；
	 * @return 是否为空；
	 */
	public static boolean isEmpty(String str) {
		return str == null || str.isEmpty();
	}

}
